import axios from 'axios'
import { Message } from 'element-ui'
// 创建实例时设置配置的默认值s
var instance = axios.create({
    // baseURL: 'http://localhost:8088',
    baseURL: '/api',
    timeout: '3000'
});
//定义拦截器

//给创建的实例添加请求拦截器
instance.interceptors.request.use(function(config) {
    // 在发送请求之前做些什么
    // var token=window.localStorage.getItem("satoken");
    // if(token){
    //     config.headers['Authorization']="Bearer "+token;
    // }
    var token = localStorage.getItem("satoken");
    console.log("token:" + token)
    if (token) {
        config.headers["satoken"] = token
    }
    //例子
    if (config.methods == 'post') {
        config.headers[' contentType'] = 'application/json;charset=utf-8'
    }
    return config;
}, function(error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 给创建的实例添加响应拦截器
instance.interceptors.response.use(function(response) {
    // 对响应数据做点什么
    const data = response.data; //从数据接口中返回的json对象
    switch (data.code) {
        case 0:
        case 200:
        case 201:
        case 202:
        case 203:
        case 204:
        case 300:
        case 501:
            //收到以上端口号信息进入.then
            return data; //返回的是data,而不是respons
        case 500:
            Message({
                message: 'token失效，重新登陆',
                type: 'error',
                duration: 300
            });
            localStorage.setItem("userName", null)

            return Promise.reject(data.message);
        default:
            //其它情况，弹框就可以了,进入.catch
            Message({
                message: 'interceptors失败',
                type: 'error'
            });
            return Promise.reject(data.message);
    }
    return response;
}, function(error) {
    // 对响应错误做点什么
    return Promise.reject(error);
});

//导出实例，供其他模块导入使用
export default instance;
